Runtime Code Generation with JVM and CLR
نویسنده
چکیده
Modern bytecode execution environments with optimizing just-in-time compilers, such as Sun’s Hotspot Java Virtual Machine, IBM’s Java Virtual Machine, and Microsoft’s Common Language Runtime, provide an infrastructure for generating fast code at runtime. Such runtime code generation can be used for efficient implementation of parametrized algorithms. More generally, with runtime code generation one can introduce an additional binding-time without performance loss. This permits improved performance and improved static correctness guarantees. We report on several experiments with runtime code generation on modern execution platforms. In particular, we show how to introduce C#-style delegates in Java using runtime code generation, to avoid most of the overhead of wrapping and unwrapping method arguments and method results usually incurred by reflective method calls. Furthermore, we give a high-speed implementation of the Advanced Encryption Standard (AES, also known as Rijndael) in C# using runtime code generation. Finally, we experiment with sparse matrix multiplication using runtime code generation on both platforms.
منابع مشابه
Common Language Runtime: a new virtual machine
Virtual Machines provide a runtime execution platform combining bytecode portability with a performance close to native code. An overview of current approaches precedes an insight into Microsoft CLR (Common Language Runtime), comparing it to Sun JVM (Java Virtual Machine) and to a native execution environment (IA 32). A reference is also made to CLR in a Unix platform and to techniques on how C...
متن کاملA Project Summary High-Assurance Common Language Runtime
Component software platforms, such as the Java Virtual Machine (JVM) and Microsoft’s .NET Common Language Runtime (CLR), provide a secure virtual machine in which components developed independently and in different source languages can smoothly interoperate. Foundational Proof-Carrying Code (FPCC) and Certified Binaries (CB) are promising new technologies for building high-confidence software s...
متن کاملPractical, Dynamic Information-flow for Virtual Machines
For decades, secure operating systems have incorporated mandatory access control (MAC) techniques. Surprisingly, mobile-code platforms such as the Java Virtual Machine (JVM) and the .NET Common Language Runtime (CLR) have largely ignored these advances and have implemented a far weaker security that does not reliably track ownership and access permissions for individual data items. We have impl...
متن کاملSealing OS Processes to Improve Dependability and Security
On most modern operating systems, a process is a hardware-protected abstraction for executing potentially mutable code and data. Common features of processes include: dynamic code loading, dynamic code generation, access to cross-process shared memory, and a universal API. This paper argues that many of the dependability and security weaknesses of modern systems are exacerbated by this open pro...
متن کاملTowards Supporting Multiple Execution Environments for UML/OCL Models at Runtime (Position Paper)
Our approach allows a developer to verify whether a model corresponds to a concrete implementation in terms of the JVM (Java Virtual Machine) by validating assumptions about model structure and behavior. In previous work, we focused on (a) the validation of static model properties by monitoring invariants, (b) basic dynamic properties by specifying preand postconditions of an operation and (c) ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002